import sys
import os

def procesar_archivo(input_filename):
    try:
        with open(input_filename, 'r', encoding='utf-8') as infile:
            lineas = infile.readlines()
    except FileNotFoundError:
        print(f"Error: No se encontró el archivo '{input_filename}'.")
        sys.exit(1)

    lineas_procesadas = []
    for linea in lineas:
        # Eliminamos espacios y saltos de línea
        linea = linea.strip()
        # Si la línea queda vacía, la ignoramos
        if not linea:
            continue
        # Separa la línea por comas y filtra tokens vacíos
        tokens = [token for token in linea.split(',') if token.strip() != ""]
        nuevos_tokens = []
        for token in tokens:
            valor = token.strip()
            # Si el token es "1", se reemplaza por "0"; de lo contrario, por "1"
            if valor == "1":
                nuevos_tokens.append("0")
            else:
                nuevos_tokens.append("1")
        # Reconstruye la línea usando coma y espacio como separador
        linea_nueva = ", ".join(nuevos_tokens)
        lineas_procesadas.append(linea_nueva)

    # Construir el nombre del archivo de salida: mismo directorio y nombre base, con extensión .bas
    base, _ = os.path.splitext(input_filename)
    output_filename = base + ".bas"

    with open(output_filename, 'w', encoding='utf-8') as outfile:
        # Agregar el texto inicial y un salto de línea
        outfile.write("DIM capa(767) as ubyte  =>{_\n")
        
        # Escribimos cada línea procesada con la coma y el "_" agregado según corresponda
        for idx, linea in enumerate(lineas_procesadas):
            if idx < len(lineas_procesadas) - 1:
                # No es la última línea: agregamos la coma y el "_" antes del salto de línea
                outfile.write(linea + ",_\n")
            else:
                # Última línea: se agrega el "_" antes del salto de línea
                outfile.write(linea + "_\n")

    print(f"Procesamiento completo. Resultado guardado en '{output_filename}'.")

if __name__ == '__main__':
    # Se requiere el archivo de entrada como argumento
    if len(sys.argv) < 2:
        print("Uso: python script.py <archivo_entrada>")
        sys.exit(1)

    input_file = sys.argv[1]
    procesar_archivo(input_file)